package com.test.gwt.mvp.client.activity;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.test.gwt.mvp.client.factory.ClientFactory;
import com.test.gwt.mvp.client.places.MailDetailPlace;
import com.test.gwt.mvp.client.ui.MailListView;
import com.test.gwt.mvp.shared.Mail;
import com.test.gwt.mvp.shared.Utils;

public class MailListActivity extends AbstractActivity implements
		MailListView.Presenter {

	private final MailListView view;
	private final PlaceController placeController;

	public MailListActivity(ClientFactory clientFactory) {
		view = clientFactory.getMailListView();
		placeController = clientFactory.getPlaceController();
	}

	@Override
	public void start(AcceptsOneWidget panel, EventBus eventBus) {
		// On passe à la vue une référence sur l’interface du présenteur
		view.setPresenter(this);
		// L’activité communique à la vue la liste des courriels à afficher
		view.setMailList(Utils.INSTANCE.getList());
		panel.setWidget(view.asWidget());
	}

	@Override
	public void mailSelected(int id) {
		// Lors de la sélection d’un courriel, un changement d’URL s’opère
		placeController.goTo(new MailDetailPlace(Integer.toString(id)));
	}


}